package main

import (
	"fmt"
	"os"
)

/*
同一个代码块中不允许重复声明同一个标识符
代码包声明语句并不算是一个声明，代码包名称并不会出现在任何一个作用域中。
代码包声明语句的目的是为了鉴别若干源码文件是否属于同一个代码包，或指定导入代码包时的默认代码包引用名称。

预定义标识符
所有基本数据类型的名称
接口类型  error
常量 true,false,iota
所有内建函数的名称：append,cap,close,complex,copy,delete,imag,len,make,new,panic,print,println,real,recover
*/

//空标识符的标识符 _   一般用在不需要引入一个新绑定的声明中

func main() {
	codePackage()
}

func codePackage() {
	//访问代码包os中名为O_RDONLY的常量
	fmt.Println(os.O_RDONLY) //输出 0
	//此处的 . 就是限定标识符
	//Go语言是根据标识符名称中的第一个字母的大小写来确定这个标识符的访问权限的
	//当标识符的第一个字母为大写时，访问权限是公开的  表示该标识符可以被任何代码包的中的任何代码通过限定符访问到
	//当标识符第一个字符为小写时，访问权限是包级私有的  只有与该标志符在同一个代码包的代码才能够访问到
	//O_RDONLY是可导出的标识符（满足：标识符中的第一个字母必须大写；标识符必须是被声明在一个代码包中的变量或者类型的名称，或者是属于某个结构体类型的字段名称或方法的名称）
}
